# -*- coding: utf-8 -*-
"""
@Project: Msptest
@Author: 余振新
@File name: 公共.py
@Create time: 2023/7/13 15:49
"""
from time import sleep

from business.首页.会议管理系统.导航菜单 import Menu
from common.base_action import BaseAction
from common.gol import get_value
from common.log import INFO
from common.path import ensure_path_sep
from common.read_yaml import read_yaml
from page.首页.会议管理系统.会后.会后总结列表 import 公共, 列表页

data = read_yaml()["meeting"]
text = data["text"]
photo_path = ensure_path_sep(data["photo_path"])
pdf_path = ensure_path_sep(data["pdf_path"])
video_path = ensure_path_sep(data["video_path"])


class Public(BaseAction):
    def __init__(self, driver):
        super().__init__(driver)  # 调用父类的 __init__ 方法来初始化实例变量

    def 打开_会议总结_填写(self, meeting_no=None):
        meeting_no = meeting_no or get_value("meeting_no")
        INFO.logger.info("开始会议总结流程")
        Menu(self.driver).打开_会后_会后总结列表()
        self.send_keys(列表页.会议编号输入框, meeting_no)
        self.click(列表页.搜索按钮)
        sleep(0.5)
        self.click(列表页.填写按钮)
        sleep(0.4)

    def 上传5张照片(self, path: str):
        self.click(公共.照片上传1)
        self.upload_file(path)
        self.click(公共.照片上传2)
        self.upload_file(path)
        self.click(公共.照片上传3)
        self.upload_file(path)
        self.click(公共.照片上传4)
        self.upload_file(path)
        self.click(公共.照片上传5)
        self.upload_file(path)

    def 上传视频(self, path: str):
        self.click(公共.视频上传)
        self.upload_file(path)

    def 上传签到表(self, path: str):
        self.click(公共.签到表上传)
        self.upload_file(path)

    def 会议总结(self):
        self.send_keys(公共.会议总结输入框, text)

    def 要点内容总结(self):
        self.send_keys(公共.要点内容总结, text)

    def 会议形式_线下(self):
        self.click(公共.会议形式_线下)

    def 下一步(self):
        self.click(公共.下一步)

    def 总结页_保存(self):
        self.click(公共.总结页_保存按钮)

    def 问题及改进建议_会议时间(self):
        self.click(公共.问题及改进建议_会议时间)
        self.send_keys(公共.问题及改进建议_会议时间_输入框, text)

    def 讲师信息_观念传递(self):
        self.scroll_to_element(公共.活动费用)
        self.click(公共.讲师信息_观念传递_填写)
        self.click(公共.讲师信息_观念传递_品牌露出_有)
        self.click(公共.讲师信息_观念传递_产品关键信息露出_无)
        self.click(公共.讲师信息_观念传递_对比竞品优势体现_有)
        self.click(公共.讲师信息_观念传递_保存)

    def 会议纪要上传(self):
        self.click(公共.会议纪要_上传按钮)
        self.upload_file(pdf_path)

    def 断言_会议纪要_上传附件_是否成功(self):
        return self.is_element_exist(公共.断言_会议纪要_上传成功)

    def 断言_总结页下一步_是否成功(self):
        return self.is_element_exist(公共.断言_总结页_下一步_保存成功)

    def 断言_会议总结_是否成功(self):
        return self.is_element_exist(公共.断言_总结页_保存成功)

    def 断言_会议总结从下一步到保存的操作是否成功_有参会人(self):
        self.下一步()
        if self.断言_总结页下一步_是否成功():
            self.下一步()
            self.上传5张照片(photo_path)
            self.总结页_保存()
            return self.断言_会议总结_是否成功()
        else:
            return False

    def 断言_会议总结从下一步到保存的操作是否成功_有参会人_有视频(self):
        self.下一步()
        if self.断言_总结页下一步_是否成功():
            self.下一步()
            self.上传5张照片(photo_path)
            self.上传视频(video_path)
            self.总结页_保存()
            return self.断言_会议总结_是否成功()
        else:
            return False

    def 断言_会议总结从下一步到保存的操作是否成功_有参会人_无照片_无视频(self):
        self.下一步()
        if self.断言_总结页下一步_是否成功():
            self.下一步()
            self.总结页_保存()
            return self.断言_会议总结_是否成功()
        else:
            return False

    def 断言_会议总结从下一步到保存的操作是否成功_无参会人(self):
        self.下一步()
        if self.断言_总结页下一步_是否成功():
            self.上传5张照片(photo_path)
            self.总结页_保存()
            return self.断言_会议总结_是否成功()
        else:
            return False

    def 断言_会议总结从下一步到保存的操作是否成功_无参会人_有签到表_有视频(self):
        self.下一步()
        if self.断言_总结页下一步_是否成功():
            self.上传5张照片(photo_path)
            self.上传签到表(photo_path)
            self.上传视频(video_path)
            self.总结页_保存()
            return self.断言_会议总结_是否成功()
        else:
            return False

    def 断言_会议总结从下一步到保存的操作是否成功_无参会人_有照片_有视频(self):
        self.下一步()
        if self.断言_总结页下一步_是否成功():
            self.上传5张照片(photo_path)
            self.上传视频(video_path)
            self.总结页_保存()
            return self.断言_会议总结_是否成功()
        else:
            return False
